﻿/*
 * 设计模式 - 桥接模式
 * 目的: 双方独立,且又能关联
 */

/*
 * 1.有两个独立的类或接口或者抽象类
 * 2.有一个独立的体系
 * 3.通过构造函数通过依赖注入(一般是基类)让这两个者关联起来
 */


using Microsoft.EntityFrameworkCore;

var repository = new EFRepository(new BaseContext());
repository.Add(new User() { Id = 1 });



class User
{
    public int Id { get; set; }
}

class BaseContext : DbContext
{
    public BaseContext(DbContextOptions<BaseContext> options) : base(options)
    {
       
    }
}

interface IRepository<TEntity> where TEntity : class
{
    void Add(TEntity entity);
    void Remove(TEntity entity);
}

class EFRepository : IRepository<User>
{
    private readonly BaseContext _db;

    public EFRepository(BaseContext db)
    {
        _db = db;
    }
    public void Add(User entity)
    {
        _db.Add(entity);
    }

    public void Remove(User entity)
    {
        _db.Remove(entity);
    }
}